home *** CD-ROM | disk | FTP | other *** search
-
- /* Structure Definitions */
- enum FmodeDef { INPUT, OUTPUT };
- typedef enum FmodeDef Fmode;
-
- struct ByteStreamDef
- {
- Fmode mode;
- short stat;
- FILE *file;
- };
- typedef struct ByteStreamDef ByteStream;
-
- extern void cByteStream( ByteStream *, char *FileName, Fmode FileMode );
- extern void dByteStream(ByteStream *);
- extern short ByteStream_read(ByteStream *);
- extern short ByteStream_write(ByteStream *, short c);
- extern short ByteStream_status(ByteStream *);
-
- #define MEMORY 1
- #define DISK 0
- #if defined(__WIN32__) || defined(sun)
- #define MALLOC malloc
- #define FREE free
- #define CHARH unsigned char
- #define FAR
- #else
- #define MALLOC farmalloc
- #define FREE farfree
- #define CHARH unsigned char huge
- #define FAR far
- #endif
-
- struct BitStreamDef
- {
- ByteStream bytestream;
- short BitBuffer; /* Bit I/O buffer */
- short BitBuffMask; /* Bit I/O buffer mask */
- CHARH *outstring;
- char mode;
- unsigned long bytesout;
- unsigned short bitmask[17];
- };
- typedef struct BitStreamDef BitStream;
-
- extern void cBitStream( BitStream *, char *fn, Fmode fm );
- extern void dBitStream(BitStream *);
- extern short BitStream_write(BitStream *, short bits, short width);
- extern short BitStream_read(BitStream *, short bits);
-
- /* Global Tables */
- extern float qtable[64];
- extern int zzseq[64];
- extern short dcbits[16], acbits[16];
- extern char dchuffval[12], achuffval[162];
-
- /* Function Declarations */
- extern void inithuffcode();
- extern void encode(short *, BitStream *);
- extern void decode(short *, BitStream *);
- extern void decomp(BitStream *bs,CHARH *Image,long rows,long cols);
-